package com.wish.g1.finance.entity;

import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import java.io.Serializable;
import java.math.BigDecimal;
import java.time.LocalDate;
import java.time.LocalDateTime;

/**
 * <p>
 * 租约保理明细表
 * </p>
 *
 * @author wxh
 * @since 2022-11-18
 */
@TableName("tb_factoring_detail")
public class FactoringDetail implements Serializable {

    private static final long serialVersionUID = 1L;

    /**
     * 主键id
     */
    @TableId(value = "id", type = IdType.AUTO)
    private Long id;

    /**
     * 租约保理申请ID
     */
    private Long factoringId;

    /**
     * 商户id
     */
    private Long businessId;

    /**
     * 出房合同ID
     */
    private Long cfContractId;

    /**
     * 房产编号
     */
    private String houseId;

    /**
     * 房产信息(考虑在房产表中增加house_name，然后带出)
     */
    private String houseName;

    /**
     * 房源ID
     */
    private String roomId;

    /**
     * 房源编号
     */
    private String roomCode;

    /**
     * 房源名称
     */
    private String roomName;

    /**
     * 租客ID
     */
    private Long tenantId;

    /**
     * 租客姓名
     */
    private String tenantName;

    /**
     * 租客手机号
     */
    private String tenantPhone;

    /**
     * 应收租约金额
     */
    private BigDecimal shouldMonthRent;

    /**
     * 保理授信额度
     */
    private BigDecimal factoringCreditMoney;

    /**
     * 保理利息
     */
    private BigDecimal factoringInterest;

    /**
     * 服务费
     */
    private BigDecimal serviceFee;

    /**
     * 借款周期(多少个月 = 付几 * 剩余未付房租账期数)
     */
    private Integer factoringPeriod;

    /**
     * 借款账期开始日
     */
    private LocalDate borrowedStart;

    /**
     * 借款账期截止日
     */
    private LocalDate borrowedEnd;

    /**
     * 删除标识（0：未删除）（1：删除）
     */
    private Boolean delFlg;

    /**
     * 创建用户id
     */
    private Long createUserid;

    /**
     * 创建时间
     */
    private LocalDateTime createTime;

    /**
     * 更新用户id
     */
    private Long updateUserid;

    /**
     * 更新用户时间
     */
    private LocalDateTime updateTime;

    public Long getId() {
        return id;
    }

    public void setId(Long id) {
        this.id = id;
    }
    public Long getFactoringId() {
        return factoringId;
    }

    public void setFactoringId(Long factoringId) {
        this.factoringId = factoringId;
    }
    public Long getBusinessId() {
        return businessId;
    }

    public void setBusinessId(Long businessId) {
        this.businessId = businessId;
    }
    public Long getCfContractId() {
        return cfContractId;
    }

    public void setCfContractId(Long cfContractId) {
        this.cfContractId = cfContractId;
    }
    public String getHouseId() {
        return houseId;
    }

    public void setHouseId(String houseId) {
        this.houseId = houseId;
    }
    public String getHouseName() {
        return houseName;
    }

    public void setHouseName(String houseName) {
        this.houseName = houseName;
    }
    public String getRoomId() {
        return roomId;
    }

    public void setRoomId(String roomId) {
        this.roomId = roomId;
    }
    public String getRoomCode() {
        return roomCode;
    }

    public void setRoomCode(String roomCode) {
        this.roomCode = roomCode;
    }
    public String getRoomName() {
        return roomName;
    }

    public void setRoomName(String roomName) {
        this.roomName = roomName;
    }
    public Long getTenantId() {
        return tenantId;
    }

    public void setTenantId(Long tenantId) {
        this.tenantId = tenantId;
    }
    public String getTenantName() {
        return tenantName;
    }

    public void setTenantName(String tenantName) {
        this.tenantName = tenantName;
    }
    public String getTenantPhone() {
        return tenantPhone;
    }

    public void setTenantPhone(String tenantPhone) {
        this.tenantPhone = tenantPhone;
    }
    public BigDecimal getShouldMonthRent() {
        return shouldMonthRent;
    }

    public void setShouldMonthRent(BigDecimal shouldMonthRent) {
        this.shouldMonthRent = shouldMonthRent;
    }
    public BigDecimal getFactoringCreditMoney() {
        return factoringCreditMoney;
    }

    public void setFactoringCreditMoney(BigDecimal factoringCreditMoney) {
        this.factoringCreditMoney = factoringCreditMoney;
    }
    public BigDecimal getFactoringInterest() {
        return factoringInterest;
    }

    public void setFactoringInterest(BigDecimal factoringInterest) {
        this.factoringInterest = factoringInterest;
    }
    public BigDecimal getServiceFee() {
        return serviceFee;
    }

    public void setServiceFee(BigDecimal serviceFee) {
        this.serviceFee = serviceFee;
    }
    public Integer getFactoringPeriod() {
        return factoringPeriod;
    }

    public void setFactoringPeriod(Integer factoringPeriod) {
        this.factoringPeriod = factoringPeriod;
    }
    public LocalDate getBorrowedStart() {
        return borrowedStart;
    }

    public void setBorrowedStart(LocalDate borrowedStart) {
        this.borrowedStart = borrowedStart;
    }
    public LocalDate getBorrowedEnd() {
        return borrowedEnd;
    }

    public void setBorrowedEnd(LocalDate borrowedEnd) {
        this.borrowedEnd = borrowedEnd;
    }
    public Boolean getDelFlg() {
        return delFlg;
    }

    public void setDelFlg(Boolean delFlg) {
        this.delFlg = delFlg;
    }
    public Long getCreateUserid() {
        return createUserid;
    }

    public void setCreateUserid(Long createUserid) {
        this.createUserid = createUserid;
    }
    public LocalDateTime getCreateTime() {
        return createTime;
    }

    public void setCreateTime(LocalDateTime createTime) {
        this.createTime = createTime;
    }
    public Long getUpdateUserid() {
        return updateUserid;
    }

    public void setUpdateUserid(Long updateUserid) {
        this.updateUserid = updateUserid;
    }
    public LocalDateTime getUpdateTime() {
        return updateTime;
    }

    public void setUpdateTime(LocalDateTime updateTime) {
        this.updateTime = updateTime;
    }

    @Override
    public String toString() {
        return "FactoringDetail{" +
            "id=" + id +
            ", factoringId=" + factoringId +
            ", businessId=" + businessId +
            ", cfContractId=" + cfContractId +
            ", houseId=" + houseId +
            ", houseName=" + houseName +
            ", roomId=" + roomId +
            ", roomCode=" + roomCode +
            ", roomName=" + roomName +
            ", tenantId=" + tenantId +
            ", tenantName=" + tenantName +
            ", tenantPhone=" + tenantPhone +
            ", shouldMonthRent=" + shouldMonthRent +
            ", factoringCreditMoney=" + factoringCreditMoney +
            ", factoringInterest=" + factoringInterest +
            ", serviceFee=" + serviceFee +
            ", factoringPeriod=" + factoringPeriod +
            ", borrowedStart=" + borrowedStart +
            ", borrowedEnd=" + borrowedEnd +
            ", delFlg=" + delFlg +
            ", createUserid=" + createUserid +
            ", createTime=" + createTime +
            ", updateUserid=" + updateUserid +
            ", updateTime=" + updateTime +
        "}";
    }
}
